package com.ruoyi.cbs.approval.mapper;

import java.util.List;
import com.ruoyi.cbs.approval.domain.ApprovalUser;

/**
 * 审核人配置Mapper接口
 * 
 * @author ruoyi
 * @date 2025-11-12
 */
public interface ApprovalUserMapper 
{
    /**
     * 查询审核人配置
     * 
     * @param id 审核人配置主键
     * @return 审核人配置
     */
    public ApprovalUser selectApprovalUserById(Long id);

    /**
     * 查询审核人配置列表
     * 
     * @param approvalUser 审核人配置
     * @return 审核人配置集合
     */
    public List<ApprovalUser> selectApprovalUserList(ApprovalUser approvalUser);

    /**
     * 查询审核人配置列表
     *
     * @param approvalType 审核类型
     * @return 审核人配置集合
     */
    public List<ApprovalUser> selectByApprovalType(String approvalType);

    /**
     * 新增审核人配置
     * 
     * @param approvalUser 审核人配置
     * @return 结果
     */
    public int insertApprovalUser(ApprovalUser approvalUser);

    /**
     * 修改审核人配置
     * 
     * @param approvalUser 审核人配置
     * @return 结果
     */
    public int updateApprovalUser(ApprovalUser approvalUser);

    /**
     * 删除审核人配置
     * 
     * @param id 审核人配置主键
     * @return 结果
     */
    public int deleteApprovalUserById(Long id);

    /**
     * 批量删除审核人配置
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteApprovalUserByIds(Long[] ids);

    /**
     * 根据审核配置id获取审批人员列表
     * @param configId
     * @return
     */
    public List<ApprovalUser> selectApprovalUsersByConfigId(Long configId);

    /**
     * 根据审批类型查询流程内所有审批节点
     * @param type
     * @return
     */
    public List<ApprovalUser> selectApprovalUserByApprovalType(String type);
}
